字符串操作 您所在的位置:网站首页 tcl regexp用法 字符串操作

字符串操作

2024-04-13 23:05| 来源: 网络整理| 查看: 265

regsub - 基于正则表达式模式匹配完成替换操作 regsub -switches {exp} string {subSpec} varName 这个命令对string进行正则表达匹配,然后把字符串拷贝进入varName中,如果没有varName则将字符串返回。(正则表达式语法匹配描述在re_syntax中。)如果匹配成功,就把匹配的部分换成subSpec后再拷贝到varName中,如果subSpec包含"&"和"\0",将会替换为匹配的字符串,如果包含"\n"将被替换为字模式匹配的字符串,多添加一个反斜杠将会阻止解释其去解释"&"、"\0"、"\n"和"\",为了防止这些情况发生,把subSpec放入花括号中会更加安全。

如果紧接着regexp的第一个变元以-开头,那么就会被当作可选项来处理,可以使用的选项如下:

在字符串中符合使正则表达式的部分全部被匹配并且全部会被替换,没有这个可选项就只有第一个匹配的字符串会被替换。在-all选项下,所有匹配的字符串都会分别根据匹配情况进行"&"和"\n"的替代。 使正则表达式使用扩展语法,空格键和注释会被忽略,与指定了(?x)嵌入选项相同(参见re_syntax帮助手册)。 换行符敏感。换行符是字符串的结束符,如果使用了这个标志位,[^和.不会匹配换行符,如果有换行,那么^和$匹配一个空字符串,这个标志为相当于同时指定了-linestop和-lineanchor,与(?n)嵌入选项相同(参见re_syntax帮助手册)。 使[^和.不会匹配换行符,与(?p)嵌入选项相同(参见re_syntax帮助手册)。 使^和$的行为改变为面向行的方式,与(?w)嵌入选项相同(参见re_syntax帮助手册)。 是大写字母也被当作小写来处理,相当于不区分大小写字符。 指定了开始匹配的索引位置,当使用了这个可选项,^不会从字符串的开头匹配,而是从指定的索引位置开始匹配。 指示可选项的结束,这个可选项主要用于exp以-开头的时候。

如果提供了varName,这个命令将返回匹配和替换的数量,不提供则返回替换后的字符串,参见命令以了解更多信息。

使用bar替代字符串中所有的foo: regsub -all {\} $string bar string

使用双引号把匹配的字符串括起来:

regsub -nocase {\} $string {"&"} string

通过regsub和subst命令把所有非ASCII和Tcl特殊意义的字符使用\u转义:

# 这个正则表达式是所有“非法”字符的字符集set RE {[][{};#\\\$\s\u0100-\uffff]}

# 替换一个中括号中的tcl命令set substitution {[format \\\\u%04x [scan "\\&" %c]]}

# 将命令传给subst使format命令得到替换set quoted [subst [regsub -all $RE $string $substitution]]

阅读(10031) | 评论(0) | 转发(0) | 0

上一篇:Kdialog 中文手册

下一篇:Gnome桌面的定制(修改面板 修改右键菜单) [初级]



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有